package design_pattern.singleton;

/**
 * @Author pc
 * @Date 2019/8/23 15:23
 * @Description 懒汉单例，获取对象时才初始化
 */
public class LazySingleton {
    private static LazySingleton lazySingleton = null;
    /**
     * 私有构造方法,保证正常情况外部无法实例该对象，无法防止反射
     */
    private LazySingleton(){
        System.out.println("初始化");
    }

    /**
     * 返回一个实例对象
     * @return
     */
    public static LazySingleton getInstance(){
        if(lazySingleton == null)//对线程下存在安全问题
            lazySingleton = new LazySingleton();
        return lazySingleton;
    }
}
